package com.dng.book.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dng.book.dto.LoginRequest;
import com.dng.book.entity.User;

/**
 * 用户服务接口
 *
 * @author dng
 * @since 2024-01-01
 */
public interface UserService extends IService<User> {

    /**
     * 用户登录
     *
     * @param loginRequest 登录请求
     * @return 登录结果
     */
    String login(LoginRequest loginRequest);

    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    User getByUsername(String username);
    
    /**
     * 根据手机号查询用户
     *
     * @param phone 手机号
     * @return 用户信息
     */
    User getByPhone(String phone);
    
    /**
     * 检查手机号是否存在
     *
     * @param phone 手机号
     * @return 是否存在
     */
    boolean existsByPhone(String phone);
    
    /**
     * 根据手机号重置密码
     *
     * @param phone 手机号
     * @param newPassword 新密码
     * @return 是否成功
     */
    boolean resetPasswordByPhone(String phone, String newPassword);
    
    /**
     * 上传用户头像
     *
     * @param username 用户名
     * @param avatarUrl 头像URL
     * @return 是否成功
     */
    boolean uploadAvatar(String username, String avatarUrl);
    
    /**
     * 获取用户头像
     *
     * @param username 用户名
     * @return 头像URL
     */
    String getAvatar(String username);
} 